testssl_runner.py is a multi-target runner designed to streamline bulk SSL/TLS scanning. It preserves native terminal color output, flags weak ciphers, and automatically saves a master summary in CSV format while archiving individual results for each domain.
| Flag | Description |
|---|---|
<domain> [domain...] |
(Python only) Scan one or more domains/IPs given directly, space-separated. |
-f <file> |
Scan every domain listed in <file> (one per line). |
-o [directory] |
Save each scan to its own file in [directory] (default name if omitted: testssl-output-DD-MM-YYYY-HHMM). |
-os |
Print each scan's output to the terminal. |
-t <path> |
Use a specific testssl binary instead of auto-detecting one. |
--report [dir] |
(Python only) Generate summary.csv. Saved to [dir] if given, else the -o directory, else the current directory. |
--detect |
Show what testssl installation will be used, without scanning anything. |
--interactive |
Menu-driven mode. |
-h, --help |
Show help. |
✅ FULL COLORS - Shows original testssl colors (green/cyan/orange/red)
- Green: OK/secure findings
- Cyan: Information
- Orange: Warnings/offered but concerning
- Red: Vulnerabilities
❌ NO COLORS - Plain text saved to files (for better parsing/compatibility)
✅ Terminal shows colors ❌ File saves without colors
./testssl_complete.sh -f domains.txt -osResult: Full colored output in terminal like your screenshots
./testssl_complete.sh -f domains.txt -o resultsResult: Plain text files saved to results/ directory
./testssl_complete.sh -f domains.txt -o results -osResult:
- Terminal shows colored output
- Files contain plain text (no color codes)
The script uses --color 3 for terminal output:
| Color Level | Description |
|---|---|
--color 0 |
No colors (plain text) |
--color 1 |
Terminal colors (basic) |
--color 2 |
Terminal colors (medium) |
--color 3 |
Terminal colors (full) - Script uses this |
Files saved with -o remain color-code-free for:
- Easy parsing with grep/awk
- Clean text editor viewing
- Report generation
- CI/CD integration
The script now uses:
# Terminal output
$TESTSSL_CMD --color 3 "$domain"
# File output
$TESTSSL_CMD --color 0 "$domain"
# Both (colors in terminal, plain in file)
$TESTSSL_CMD --color 3 "$domain" | tee >(sed 's/\x1b\[[0-9;]*m//g' > "$output_file")| Command | Terminal | File |
|---|---|---|
-os |
✅ Colors | - |
-o |
- | ❌ No colors |
-o -os |
✅ Colors | ❌ No colors |
- Visual Scanning - Quickly spot vulnerabilities by color
- Match Documentation - Colors match testssl docs and tutorials
- Professional Reports - Terminal sessions look like the real thing
- File Compatibility - Saved files remain clean for parsing
- Color Mode:
--color 3(full colors for terminal)